// 触摸屏幕移动距离超过1px时有效，下拉距离就是当前元素下滑距离
// 当小于指定距离时下拉内容不变，放开不触发回调函数，当超过指定距离时下拉内容改变，同时放开时触发回调函数

var loadMore = function(selector,fn) {
    this.selector = selector;
    this.fn = fn;
    var that = this;
    this.slider = {
        touch: ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch,
        slider: document.querySelector(this.selector),
        handleEvent: function(event) {
            console.log(event.type)
            switch (event.type) {
                case 'touchstart':
                    that.start(event);
                case 'touchmove':
                    that.move(event);
                case 'touchend':
                    that.end(event);
            }
        }
    };
    // this.startTime = 0;
    // this.silder = {
    //     touch: ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch,
    //     slider: document.querySelector(this.selector),
    //     handleEvent: function(event) {
    //     var that = this;
    //     switch (event.type) {
    //         case 'touchstart':
    //             that.start(event);
    //         case 'touchmove':
    //             that.move(event);
    //         case 'touchend':
    //             that.end(event);
    //         }
    //     }
    // }
    
    this.start = function(event) {
        var touch = event.targetTouches[0]; //touches数组对象获得屏幕上所有的touch，取第一个touch
        startPos = {x:touch.pageX,y:touch.pageY,time:+new Date}; //取第一个touch的坐标值
        isScrolling = 0; //这个参数判断是垂直滚动还是水平滚动
        this.slider.slider.addEventListener('touchmove',this.slider, false);
        this.slider.slider.addEventListener('touchend',this.slider, false);
    }
    this.move = function(event) {
        if (event.targetTouches.length > 1 || event.scale && event.scale !== 1) return;
        var touch = event.targetTouches[0];
        endPos = { x:touch.pageX - startPos.x,y:touch.pageY - startPos.y };
        isScrolling = Math.abs(endPos.x) < Math.abs(endPos.y) ? 1:0; //isScrolling为1时，表示纵向滑动，0为横向滑动
        if (isScrolling === 0) {
            event.preventDefault(); //阻止触摸事件的默认行为，即阻止滚屏
        } else if (isScrolling === 1) { //当为垂直下拉滚动时
            // if (Number(duration) > 1) { 
            // 当偏移量大于1时执行
                if (endPos.y < 10) {
                    console.log('正在下拉')
                    console.log(endPos.y)
                   this.slider.slider.style.marginTop = endPos.y + 'px'
                // 添加显示下拉元素
                } else if (endPos.y > 10 && endPos.y < 20) {
                // 显示放开可以刷新
                this.slider.slider.style.marginTop = endPos.y + 'px'
                    console.log('可以放开刷新了')
                } else {
                    this.slider.slider.style.marginTop = endPos.y + 'px'
                }
            // }
            // endPos.y 当前元素移动
        
        }
    }
    this.end = function(event) {
        console.log('end')
        // console.log('转动中')
        if (this.fn) {
            
        //放开触发动效，直到回调函数返回,元素返回之前的位置 endPos.y,并且删除刷新元素
        }
        //解绑事件
        // this.slider.slider.removeEventListener('touchmove',this.slider,false);
        // this.slider.slider.removeEventListener('touchend',this.slider,false);
    }
    this.init = function(el) {
        if (this.slider.touch) this.slider.slider.addEventListener('touchstart', this.slider, false)
    }
    return {
        init: this.init()
    }
}
    
// var a = new loadMore();
// a('.div', function() {
// // 刷新业务逻辑
// })